perm filename DATA.BCH[TIM,LSP]4 blob sn#738485 filedate 1984-01-17 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00024 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00003 00002	(setq *benchmarks* 
C00008 00003	(setq *data*
C00009 00004		(boyer
C00011 00005		(browse
C00013 00006		(destru
C00015 00007		(traverse
C00018 00008		(tak
C00019 00009		(stak
C00021 00010		(ctak
C00023 00011		(takl
C00025 00012		(takr
C00026 00013		(deriv
C00027 00014		(dderiv
C00028 00015		(fdderiv
C00029 00016		(div2
C00032 00017		(fft
C00033 00018		(puzzle
C00034 00019		(triang
C00036 00020		(fread
C00038 00021		(fprint
C00040 00022		(tprint
C00042 00023		(frpoly
C00052 00024	 Routines to access the data base
C00062 ENDMK
C⊗;
(setq *benchmarks* 
      '(boyer browse destru traverse
	      tak stak ctak takl takr deriv dderiv fdderiv
	      div2 fft puzzle triang 
	      fprint fread tprint frpoly))

(setq *benchmark-info*
      `(
	(Title 
	 ((center) "Benchmark" (entry id)))
	(Boyer
	 ((blankline))
	 ((center) "Boyer" (entry real-time))
	 ((blankline)))
	(Browse
	 ((blankline))
	 ((center) "Browse" (entry real-time))
	 ((blankline)))
	(Destru
	 ((blankline))
	 ((center) "Destruct" (entry real-time))
	 ((blankline)))
	(Traverse
	 ((blankline))
	 ((indent 0) "Traverse")
	 ((center) "Initialize" (entry tinit-real-time))
	 ((center) "Traverse" (entry traverse-real-time))
	 ((blankline)))
	(Tak
	 ((blankline))
	 ((center) "Tak" (entry real-time))
	 ((blankline)))
	(Takl
	 ((blankline))
	 ((center) "Takl" (entry real-time))
	 ((blankline)))
	(Takr
	 ((blankline))
	 ((center) "Takr" (entry real-time))
	 ((blankline)))
	(STak
	 ((blankline))
	 ((center) "STak" (entry real-time))
	 ((blankline)))
	(CTak
	 ((blankline))
	 ((center) "CTak" (entry real-time))
	 ((blankline)))
	(Deriv
	 ((blankline))
	 ((center) "Deriv" (entry real-time))
	 ((blankline)))
	(DDeriv
	 ((blankline))
	 ((center) "DDeriv" (entry real-time))
	 ((blankline)))
	(FDDeriv
	 ((blankline))
	 ((center) "Fdderiv" (entry real-time))
	 ((blankline)))
	(Div2
	 ((blankline))
	 ((indent 0) "Div2")
	 ((center) "Iterative" (entry iterative-real-time))
	 ((center) "Recursive" (entry recursive-real-time))
	 ((blankline)))
	(FFT
	 ((blankline))
	 ((center) "FFT" (entry real-time))
	 ((blankline)))
	(Puzzle
	 ((blankline))
	 ((center) "Puzzle" (entry real-time))
	 ((blankline)))
	(Triang
	 ((blankline))
	 ((center) "Triang" (entry real-time))
	 ((blankline)))
	(Fread
	 ((blankline))
	 ((center) "Fread" (entry real-time))
	 ((blankline)))
	(Fprint
	 ((blankline))
	 ((center) "Fprint" (entry real-time))
	 ((blankline)))
	(Tprint
	 ((blankline))
	 ((center) "Tprint" (entry real-time))
	 ((blankline)))
	 (Frpoly
	  ((blankline))
	  ((indent 0) "Frpoly")
	  ((indent 1) "Power = 2")
	  ((indent 2) "r=x+y+z+1" (entry 2r-real-time))
	  ((indent 2) "r2=1000*r" (entry 2r2-real-time))
	  ((indent 2) "r3=r in flonums" (entry 2r3-real-time))
	  ((blankline))
	  ((indent 1) "Power = 5")
	  ((indent 2) "r=x+y+z+1" (entry 5r-real-time))
	  ((indent 2) "r2=1000*r" (entry 5r2-real-time))
	  ((indent 2) "r3=r in flonums" (entry 5r3-real-time))
	  ((blankline))
	  ((indent 1) "Power = 10")
	  ((indent 2) "r=x+y+z+1" (entry 10r-real-time))
	  ((indent 2) "r2=1000*r" (entry 10r2-real-time))
	  ((indent 2) "r3=r in flonums" (entry 10r3-real-time))
	  ((blankline))
	  ((indent 1) "Power = 15")
	  ((indent 2) "r=x+y+z+1" (entry 15r-real-time))
	  ((indent 2) "r2=1000*r" (entry 15r2-real-time))
	  ((indent 2) "r3=r in flonums" (entry 15r3-real-time))
	  ((blankline)))))
(setq *data*
      '(
	(title
	 (sail "SAIL")
	 (franz68k  "Franz 68000")
	 (psl20 "PSL-20")
	 (d2 "Dolphin")
	 (d3 "Dorado")
	 (s3600 "3600")
	 (franz750 "750 Franz")
	 (franz780 "780 Franz")
	 (interlisp-10 "InterLisp-10")
	 ((safe-quotient interlisp-10 sail) "Ratio")
	 ((safe-quotient d3 s3600) "Ratio")
	 (lm2 "LM-2")
	 (NIL750 "750 NIL"))

	(boyer
	 (sail (cpu 7.49 gc 12.19 wholine 33.98))
	 (s3600 (cpu 14 page 7.52))
	 (interlisp-10 (cpu 25.458
			gc  27.479))
	 (lm2 (real 45.0))
	 (d2 (cpu 101.1 gc 31.3))
	 (d3 (cpu 17.1 gc 13.2))
	 (franz780 ((trlon (lclfno (cpu 40.17 gc 31.33)))
		    (trlon  (lclfyes (cpu 20.58 gc 31.08)))
		    (trloff  (lclfno (cpu 144.98 gc 21.32)))
		    (trloff  (lclfyes (cpu 21.0 gc 21.35)))))
	 (franz750 ((trlon (lclfno (cpu 60.55 gc 50.9)))
		    (trlon  (lclfyes (cpu 34.35 gc 50.98)))
		    (trloff  (lclfno (cpu 224.03 gc 34.7)))
		    (trloff  (lclfyes (cpu 34.67 gc 35.03)))))
	 (franz68k ((trlon (lclfno (cpu 64.38 gc 75.48)))
		    (trlon  (lclfyes (cpu 42.28 gc 75.37)))
		    (trloff  (lclfno (cpu 246.32 gc 51.78)))
		    (trloff  (lclfyes (cpu 42.85 gc 51.58)))))
	 (NIL750 (cpu 81.33 real 83.78)))
	(browse
	 (sail (cpu 13.64 gc 39.52 wholine 82.68))
	 (s3600 (cpu 32.1 page 16.52))
	 (interlisp-10 (cpu 70.321
			gc  26.981))
	 (lm2 (real 70.21))
	 (d2 (cpu 249.0 gc 82.6))
	 (d3 (cpu 52.5 gc 41.9))
	 (franz780 ((trlon (lclfno (cpu 78.25 gc 92.0)))
		    (trloff  (lclfno (cpu 155.53 gc 77.83)))
		    (trlon  (lclfyes (cpu 73.02 gc 88.97)))
		    (trloff  (lclfyes (cpu 135.7 gc 77.3)))))
	 (franz750 ((trlon (lclfno (cpu 122.67 gc 138.47)))
		    (trloff  (lclfno (cpu 254.43 gc 134.92)))
		    (trlon  (lclfyes (cpu 117.2 gc 137.93)))
		    (trloff  (lclfyes (cpu 212.48 gc 132.53)))))
	 (franz68k ((trlon (lclfno (cpu 137.38 gc 275.65)))
		    (trloff  (lclfno (cpu 251.77 gc 225.15)))
		    (trlon  (lclfyes (cpu 134.48 gc 275.52)))
		    (trloff  (lclfyes (cpu 227.85 gc 224.77)))))
	 (NIL750 (cpu 1099.84 real 1226.54)))
	(destru
	 (sail (cpu 2.16 gc 5.38 wholine 8.43))
	 (s3600 (cpu 3.94 page 1.69))
	 (interlisp-10 (cpu 9.206 
			gc  1.427))
	 (lm2 (real 8.54))
	 (d2 (cpu 27.0 gc 7.97))
	 (d3 (cpu 3.77 gc 3.41))
	 (franz780 ((trlon (lclfno (cpu 6.95 gc 6.78)))
		    (trloff  (lclfno (cpu 6.95 gc 6.77)))
		    (trlon  (lclfyes (cpu 5.2 gc 6.63)))
		    (trloff  (lclfyes (cpu 6.96 gc 6.7)))))
	 (franz750 ((trlon (lclfno (cpu 8.68 gc 6.95)))
		    (trloff  (lclfno (cpu 11.02 gc 7.65)))
		    (trlon  (lclfyes (cpu 8.8 gc 6.9)))
		    (trloff  (lclfyes (cpu 11.4 gc 7.72)))))
	 (franz68k ((trlon (lclfno (cpu 13.98 gc 9.01)))
		    (trloff  (lclfno (cpu 19.13 gc 9.05)))
		    (trlon  (lclfyes (cpu 14.02 gc 9.03)))
		    (trloff  (lclfyes (cpu 19.15 gc 9.05)))))
	 (NIL750 (cpu 8.95 real 8.96)))
	(traverse
	 (sail ((initialize
		 (cpu 6.69 gc 45.14 wholine 51.82))
		(traverse
		 (cpu 23.96 gc 0.0 wholine 23.96))))
	 (s3600 
	  ((initialize (cpu 12.3 page 1.2))
	   (traverse (cpu 51.23 page 0.0))))
	 (lm2 ((initialize (real 41.23))
	       (traverse (real 215.68))))
	 (interlisp-10 ((initialize (cpu 37.62 
					gc 6.098))
			(traverse 
			 (cpu 85.862 gc 0.0))))
	 (d2 
	  ((initialize (cpu 100.0 gc 1.25))
	   (traverse (cpu 299.0 gc 0.0))))
	 (d3
	  ((initialize (cpu 20.5 gc .49))
	   (traverse (cpu 63.9 gc 0.0))))
	 (franz780 
	  ((initialize ((trlon (lclfno (cpu 18.47 gc 11.8)))
			(trloff  (lclfno (cpu 18.7 gc 12.73)))
			(trlon  (lclfyes (cpu 20.42 gc 11.77)))
			(trloff  (lclfyes (cpu 29.61 gc 12.82)))))
	   (traverse ((trlon (lclfno (cpu 82.98 gc 0.0)))
		      (trloff  (lclfno (cpu 83.03 gc 0.0)))
		      (trlon  (lclfyes (cpu 156.21 gc 0.0)))
		      (trloff  (lclfyes (cpu 559.58 gc 0.0)))))))
	 (franz750 
	  ((initialize ((trlon (lclfno (cpu 32.98 gc 19.3)))
			(trloff  (lclfno (cpu 33.18 gc 20.75)))
			(trlon  (lclfyes (cpu 35.45 gc 19.72)))
			(trloff  (lclfyes (cpu 51.23 gc 21.03)))))
	   (traverse ((trlon (lclfno (cpu 132.63 gc 0.0)))
		      (trloff  (lclfno (cpu 132.6 gc 0.0)))
		      (trlon  (lclfyes (cpu 244.01 gc 0.0)))
		      (trloff  (lclfyes (cpu 911.2 gc 0.0)))))))
	 (nil750
	  ((initialize (cpu 38.93 real 39.72))
	   (traverse (cpu 273.26 real 273.32)))))
	(tak
	 (sail (cpu .489 gc 0.0 wholine .85))
	 (s3600 (cpu .59 page 0.0))
	 (lm2 (real 2.9))
	 (psl20 (Cpu .4662 gc 0.0))
	 (interlisp-10 (cpu 2.088 
			gc 0.0))
	 (d2 (cpu 3.84 gc 0.0))
	 (d3 (cpu .526 gc 0.0))
	 (franz780 ((trlon (lclfno (cpu 8.3 gc 0.0)))
		    (trloff  (lclfno (cpu 2.1 gc 0.0)))
		    (trlon  (lclfyes (cpu 1.1 gc 0.0)))
		    (trloff  (lclfyes (cpu 1.1 gc 0.0)))))
	 (franz750 ((trlon (lclfno (cpu 14.8 gc 0.0)))
		    (trloff  (lclfno (cpu 3.3 gc 0.0)))
		    (trlon  (lclfyes (cpu 1.9 gc 0.0)))
		    (trloff  (lclfyes (cpu 0.9 gc 0.0))))) 
	 (NIL750 (cpu 4.16 real 4.16)))
	(stak
	 (sail (cpu 3.5 gc 0.0 wholine 4.42))
	 (s3600 (cpu 2.48 page 0.0))
	 (interlisp-10 (cpu 6.379 gc 0.0))
	 (psl20 (cpu 2.78 gc 0.0))
	 (lm2 (real 7.83))
	 (d2 (cpu 12.4 gc 0.0))
	 (d3 (cpu 1.89 gc 0.0))
	 (franz780 ((trlon (lclfno (cpu 6.32 gc 0.0)))
		    (trloff  (lclfno (cpu 17.75 gc 0.0)))
		    (trlon  (lclfyes (cpu 3.17 gc 0.0)))
		    (trloff  (lclfyes (cpu 3.15 gc 0.0)))))
	 (franz750 ((trlon (lclfno (cpu 11.18 gc 0.0)))
		    (trloff  (lclfno (cpu 25.98 gc 0.0)))
		    (trlon  (lclfyes (cpu 5.05 gc 0.0)))
		    (trloff  (lclfyes (cpu 5.01 gc 0.0)))))
	 (franz68k ((trlon (lclfno (cpu 11.17 gc 0.0)))
		    (trloff  (lclfno (cpu 28.0 gc 0.0)))
		    (trlon  (lclfyes (cpu 9.02 gc 0.0)))
		    (trloff  (lclfyes (cpu 9.02 gc 0.0)))))
	 (NIL750 (cpu 23.14 real 23.24)))
	(ctak
	 (sail (cpu 2.85 gc 0.0 wholine 4.18))
	 (s3600 (cpu 8.84 page 0.0))
	 (interlisp-10 (cpu 44.672 gc 0.0))
	 (psl20 (cpu 5.10 gc 0.0))
	 (lm2 (real 10.43))
	 (d2 (cpu 140.0 gc 0.0))
	 (d3 (cpu 18.0 gc 0.0))
	 (franz780 ((trlon (lclfno (cpu 12.05 gc 0.0)))
		    (trloff  (lclfno (cpu 17.8 gc 0.0)))
		    (trlon  (lclfyes (cpu 10.68 gc 0.0)))
		    (trloff  (lclfyes (cpu 10.7 gc 0.0)))))
	 (franz750 ((trlon (lclfno (cpu 18.35 gc 0.0)))
		    (trloff  (lclfno (cpu 27.05 gc 0.0)))
		    (trlon  (lclfyes (cpu 18.75 gc 0.0)))
		    (trloff  (lclfyes (cpu 18.25 gc 0.0)))))
	 (franz68k ((trlon (lclfno (cpu 20.75 gc 0.0)))
		    (trloff  (lclfno (cpu 28.46 gc 0.0)))
		    (trlon  (lclfyes (cpu 19.6 gc 0.0)))
		    (trloff  (lclfyes (cpu 19.62 gc 0.0)))))
	 (NIL750 (cpu 9.92 real 9.92)))
	(takl
	 (sail (cpu 2.81 gc 0.0 wholine 4.03))
	 (s3600 (cpu 6.32 page 0.0))
	 (lm2 (real 25.9))
	 (PSL20 (Cpu 18.76 GC 0.0))
	 (interlisp-10 (cpu 3.786
			gc 0.0))
	 (d2 (cpu 45.6 gc 0.0))
	 (d3 (cpu 3.62 gc 0.0))
	 (franz780 ((trlon (lclfno (cpu 9.72 gc 0.0)))
		    (trloff  (lclfno (cpu 24.67 gc 0.0)))
		    (trlon  (lclfyes (cpu 6.17 gc 0.0)))
		    (trloff  (lclfyes (cpu 6.18 gc 0.0)))))
	 (franz750 ((trlon (lclfno (cpu 18.4 gc 0.0)))
		    (trloff  (lclfno (cpu 47.02 gc 0.0)))
		    (trlon  (lclfyes (cpu 12.6 gc 0.0)))
		    (trloff  (lclfyes (cpu 12.37 gc 0.0)))))
	 (franz68k ((trlon (lclfno (cpu 19.75 gc 0.0)))
		    (trloff  (lclfno (cpu 49.25 gc 0.0)))
		    (trlon  (lclfyes (cpu 16.18 gc 0.0)))
		    (trloff  (lclfyes (cpu 16.2 gc 0.0)))))
	 (NIL750 (cpu 39.13 real 39.27)))
	(takr
	 (sail (cpu .488 gc 0.0 wholine 1.18))
	 (s3600 (cpu .59 page 0.0))
	 (interlisp-10 (cpu 2.162 gc 0.0))
	 (psl20 (cpu 3.10 gc 0.0))
	 (lm2 (real 2.87))
	 (d2 (cpu 3.42 gc 0.0))
	 (d3 (cpu .677 gc 0.0))
	 (franz780 ((trlon (lclfno (cpu 3.62 gc 0.0)))
		    (trloff  (lclfno (cpu 13.26 gc 0.0)))
		    (trlon  (lclfyes (cpu 1.7 gc 0.0)))
		    (trloff  (lclfyes (cpu 1.7 gc 0.0)))))
	 (franz750 ((trlon (lclfno (cpu 5.09 gc 0.0)))
		    (trloff  (lclfno (cpu 19.17 gc 0.0)))
		    (trlon  (lclfyes (cpu 2.7 gc 0.0)))
		    (trloff  (lclfyes (cpu 2.7 gc 0.0)))))
	 (NIL750 (cpu 5.71 real 5.71)))
	(deriv
	 (sail (cpu 1.81 gc 17.11 wholine 30.23))
	 (s3600 (cpu 11.55 page 5.95))
	 (interlisp-10 (cpu 40.21 gc 7.749))
	 (lm2 (real 23.9))
	 (d2 (cpu 40.3 gc 39.4))
	 (d3 (cpu 9.88 gc 18.6))
	 (franz780 
	  ((trlon  (lclfyes (cpu 11.0 gc 16.0)))
	   (trloff  (lclfyes (cpu 8.3 gc 16.9)))))
	 (franz750 
	  ((trlon  (lclfyes (cpu 13.86 gc 22.2)))))
	 (NIL750 (cpu 22.69 real 24.63)))
	(dderiv
	 (sail (cpu 2.83 gc 18.28 wholine 38.62))
	 (s3600 (cpu 14.6 page .6))
	 (interlisp-10 (cpu 28.067 gc 9.126)) 
	 (lm2 (real 23.67))
	 (d2 (cpu 56.6 gc 43.6))
	 (d3 (cpu 12.7 gc 20.3))
	 (franz780 
	  ((trloff  (lclfyes (cpu 13.52 gc 17.28)))
	   (trlon  (lclfyes (cpu 9.8 gc 17.6)))))
	 (NIL750 (cpu 26.9 real 29.0)))
	(fdderiv
	 (sail (cpu 2.15 gc 18.28 wholine 34.62))
	 (NIL750 (cpu 26.45 real 28.29)))
	(div2
	 (sail 
	  ((iterative (cpu .844 gc 8.45 wholine 17.25))
	   (recursive (cpu 1.28 gc 8.9 wholine 18.08))))
	 (interlisp-10 
	  ((iterative (cpu 131.858 gc 5.026 gc))
	   (recursive (cpu 68.208 gc 4.96))))
	 (s3600 
	  ((iterative (cpu 4.8 page 4.0))
	   (recursive (cpu 6.27 page 4.92))))
	 (lm2 
	  ((iterative (real 8.63))
	   (recursive (real 12.38))))
	 (d2 
	  ((iterative (cpu 19.9 gc 16.7))
	   (recursive (cpu 22.4 gc 17.3))))
	 (d3
	  ((iterative (cpu 3.43 gc 8.55))
	   (recursive (cpu 4.09 gc 8.67))))
	 (franz780 
	  ((iterative ((trlon (lclfno (cpu 3.2 gc 16.77)))
		       (trloff  (lclfno (cpu 3.45 gc 16.75)))
		       (trlon  (lclfyes (cpu 3.35 gc 16.85)))
		       (trloff  (lclfyes (cpu 3.33 gc 16.7)))))
	   (recursive ((trlon (lclfno (cpu 7.68 gc 16.97)))
		       (trloff  (lclfno (cpu 28.88 gc 17.17)))
		       (trlon  (lclfyes (cpu 3.55 gc 16.78)))
		       (trloff  (lclfyes (cpu 3.47 gc 16.75)))))))
	 (franz750 
	  ((iterative ((trlon (lclfno (cpu 5.37 gc 20.47)))
		       (trloff  (lclfno (cpu 5.6 gc 21.28)))
		       (trlon  (lclfyes (cpu 5.5 gc 20.22)))
		       (trloff  (lclfyes (cpu 5.57 gc 21.18)))))
	   (recursive ((trlon (lclfno (cpu 11.3 gc 20.58)))
		       (trloff  (lclfno (cpu 40.43 gc 21.32)))
		       (trlon  (lclfyes (cpu 5.75 gc 20.53)))
		       (trloff  (lclfyes (cpu 5.57 gc 21.47)))))))
	 (franz68k
	  ((iterative ((trlon (lclfno (cpu 7.95 gc 24.87)))
		       (trloff  (lclfno (cpu 8.25 gc 24.93)))
		       (trlon  (lclfyes (cpu 7.83 gc 24.8)))
		       (trloff  (lclfyes (cpu 7.9 gc 24.88)))))
	   (recursive ((trlon (lclfno (cpu 11.13 gc 25.07)))
		       (trloff  (lclfno (cpu 43.3 gc 25.22)))
		       (trlon  (lclfyes (cpu 7.35 gc 24.97)))
		       (trloff  (lclfyes (cpu 7.27 gc 25.22)))))))
	 (NIL750 
	  ((iterative (cpu 9.44 real 9.94)) 
	   (recursive (cpu 14.7 real 15.15)))))
	(fft
	 (sail (cpu 4.00 gc 2.91 wholine 9.38))
	 (s3600 (cpu 4.77 page 0.0))
	 (interlisp-10 (cpu 12.6 gc 0.0))
;	 (interlisp-10 (cpu 1.691 gc 1.917))
	 (lm2 (real 39.07))
	 (d2 (cpu 13.2 gc 21.7))
	 (d3 (cpu 28.0 gc 3.08))
	 (NIL750 (cpu 35.59 real 38.17)))
	(puzzle
	 (sail (cpu 7.87 gc 0.0 wholine 11.83))
	 (s3600 (cpu 14.21 page 0.0))
	 (interlisp-10 (cpu 121.028 gc 7.926))
	 (lm2 (real 42.93))
	 (d2 (cpu 91.0 gc 0.0))
	 (d3 (cpu 14.0 gc 0.0))
	 (NIL750 (cpu 497.85 real 498.02)))
	(triang
	 (sail (cpu 86.03 gc 6.35 wholine 144.9))
	 (s3600 (cpu 158.1 page 0.0))
	 (interlisp-10 (cpu 2326.439 gc 1.125))
	 (lm2 (real 763.0))
	 (d2 (cpu 1510.0 gc 0.70))
	 (d3 (cpu 252.2 gc .212))
	 (NIL750 (cpu 649.73 real 652.35)))
	(fread
	 (sail (cpu .98 gc 0.0 wholine 1.8))
	 (s3600 (cpu 6.25 page 0.0))
	 (interlisp-10 (cpu 4.476 gc 0.0))
	 (lm2 (real 20.67))
	 (d2 (cpu 6.41 gc 0.0))
	 (d3 (cpu 1.57 gc 0.0))
	 (franz780 ((trlon (lclfno (cpu 1.17 gc 0.31)))
		    (trloff  (lclfno (cpu 1.17 gc .19)))
		    (trlon  (lclfyes (cpu 1.18 gc 0.19)))
		    (trloff  (lclfyes (cpu 1.18 gc 0.19)))))
	 (franz750 ((trlon (lclfno (cpu 2.02 gc 0.32)))
		    (trloff  (lclfno (cpu 2.04 gc 0.35)))
		    (trlon  (lclfyes (cpu 1.99 gc 0.33)))
		    (trloff  (lclfyes (cpu 2.05 gc 0.33)))))
	 (franz68k ((trlon (lclfno (cpu 2.29 gc 0.52)))
		    (trloff  (lclfno (cpu 2.28 gc 0.77)))
		    (trlon  (lclfyes (cpu 2.28 gc 0.52)))
		    (trloff  (lclfyes (cpu 2.28 gc 0.77)))))
	 (NIL750 (cpu 27.78 real 28.02)))
	(fprint
	 (sail (cpu .78 gc 0.402 wholine 1.32))
	 (s3600 (cpu 3.1 page .1))
	 (lm2 (real 12.09))
	 (interlisp-10 (cpu 4.451 gc 0.0))
	 (d2 (cpu 14.9 gc 0.0))
	 (d3 (cpu 1.57 gc 0.0))
	 (franz780 ((trlon (lclfno (cpu 0.62 gc 0.0)))
		    (trloff  (lclfno (cpu 0.63 gc 0.0)))
		    (trlon  (lclfyes (cpu 0.63 gc 0.0)))
		    (trloff  (lclfyes (cpu 0.64 gc 0.0)))))
	 (franz750 ((trlon (lclfno (cpu 1.23 gc 0.0)))
		    (trloff  (lclfno (cpu 1.07 gc 0.0)))
		    (trlon  (lclfyes (cpu 1.11 gc 0.0)))
		    (trloff  (lclfyes (cpu 1.10 gc 0.0)))))
	 (franz68k ((trlon (lclfno (cpu 1.43 gc 0.0)))
		    (trloff  (lclfno (cpu 1.42 gc 0.0)))
		    (trlon  (lclfyes (cpu 1.42 gc 0.0)))
		    (trloff  (lclfyes (cpu 1.43 gc 0.0)))))
	 (NIL750 (cpu 37.65 real 38.23)))
	(tprint
	 (sail (cpu .81 gc 0.0 wholine 6.52))
	 (s3600 (cpu 7.8 page 0.0))
	 (interlisp-10 (cpu 4.727 gc 0.0))
	 (lm2 (real 17.67))
	 (d2 (cpu 29.2 gc 0.0))
	 (d3 (cpu 5.55 gc 0.0))
	 (franz780 ((trlon (lclfno (cpu 0.52 gc 0.0)))
		    (trloff  (lclfno (cpu 0.52 gc 0.0)))
		    (trlon  (lclfyes (cpu 0.53 gc 0.0)))
		    (trloff  (lclfyes (cpu 0.48 gc 0.0)))))
	 (franz750 ((trlon (lclfno (cpu 0.87 gc 0.0)))
		    (trloff  (lclfno (cpu 0.87 gc 0.0)))
		    (trlon  (lclfyes (cpu 0.88 gc 0.0)))
		    (trloff  (lclfyes (cpu 0.87 gc 0.0)))))
	 (franz68k ((trlon (lclfno (cpu 1.65 gc 0.0)))
		    (trloff  (lclfno (cpu 1.62 gc 0.0)))
		    (trlon  (lclfyes (cpu 1.62 gc 0.0)))
		    (trloff  (lclfyes (cpu 1.65 gc 0.0)))))
	 (NIL750 (cpu 47.55 real 58.31)))
	(frpoly
	 (sail 
 	  ((2r (cpu .005 gc 0.0 wholine 0.02))
	   (2r2 (cpu .005 gc 0.0 wholine 0.02))
	   (2r3 (cpu .004 gc 0.0 wholine 0.02))
	   (5r (cpu .042 gc 0.0 wholine 0.02))
	   (5r2 (cpu .067 gc 0.0 wholine 1.06))
	   (5r3 (cpu .042 gc 0.0 wholine 0.08))
	   (10r (cpu .467 gc 0.79 wholine 1.9))
	   (10r2 (cpu .926 gc 5.94 wholine 12.48))
	   (10r3 (cpu .47 gc 2.98 wholine 5.89))
	   (15r (cpu 3.15 gc 4.82 wholine 12.57))
	   (15r2 (cpu 9.43 gc 50.48 wholine 94.77))
	   (15r3 (cpu 3.16 gc 48.86 wholine 81.33))))
	 (s3600 
	  ((2r (cpu .009 page 0.0))
	   (2r2 (cpu .017 page 0.0))
	   (2r3 (cpu .009 page 0.0))
	   (5r (cpu .88 page 0.0))
	   (5r2 (cpu .26 page 0.0))
	   (5r3 (cpu .094 page 0.0))
	   (10r (cpu 1.01 page 0.0))
	   (10r2 (cpu 5.1 page 0.0))
	   (10r3 (cpu 1.07 page 0.0))
	   (15r (cpu 6.4 page 0.0))
	   (15r2 (cpu 50.3 page 0.0))
	   (15r3 (cpu 6.8 page 0.0))))
	 (lm2
	  ((2r (cpu .020 page 0.0))
	   (2r2 (cpu .022 page 0.0))
	   (2r3 (cpu .022 page 0.0))
	   (5r (cpu .20 page 0.0))
	   (5r2 (cpu .25 page 0.0))
	   (5r3 (cpu .24 page 0.0))
	   (10r (cpu 2.29 page 0.0))
	   (10r2 (cpu 3.52 page 0.0))
	   (10r3 (cpu 2.73 page 0.0))
	   (15r (cpu 18.55 page 0.0))
	   (15r2 (cpu 30.90 page 0.0))
	   (15r3 (cpu 22.43 page 0.0))))
	 (franz780 
	  ((2r ((trlon (lclfno (cpu 0.02 gc 0.0)))
		(trloff  (lclfno (cpu 0.05 gc 0.0)))
		(trlon  (lclfyes (cpu 0.02 gc 0.0)))
		(trlon  (lclfyes (cpu 0.02 gc 0.0)))))
	   (2r2 ((trlon (lclfno (cpu 0.02 gc 0.0)))
		 (trloff  (lclfno (cpu 0.07 gc 0.0)))
		 (trlon  (lclfyes (cpu 0.02 gc 0.0)))
		 (trlon  (lclfyes (cpu 0.02 gc 0.0)))))
	   (2r3 ((trlon (lclfno (cpu 0.03 gc 0.0)))
		 (trloff  (lclfno (cpu 0.07 gc 0.0)))
		 (trlon  (lclfyes (cpu 0.02 gc 0.0)))
		 (trlon  (lclfyes (cpu 0.02 gc 0.0)))))
	   (5r ((trlon (lclfno (cpu 0.02 gc 0.0)))
		(trloff  (lclfno (cpu 0.6 gc 0.0)))
		(trlon  (lclfyes (cpu 0.15 gc 0.0)))
		(trlon  (lclfyes (cpu 0.15 gc 0.0)))))
	   (5r2 ((trlon (lclfno (cpu 0.38 gc 0.0)))
		 (trloff  (lclfno (cpu 1.18 gc 0.42)))
		 (trlon  (lclfyes (cpu 0.67 gc 0.37)))
		 (trlon  (lclfyes (cpu 0.67 gc 0.37)))))
	   (5r3 ((trlon (lclfno (cpu 0.22 gc 0.0)))
		 (trloff  (lclfno (cpu 0.98 gc 0.4)))
		 (trlon  (lclfyes (cpu 3.85 gc 1.83)))
		 (trlon  (lclfyes (cpu 3.85 gc 1.83)))))
	   (10r ((trlon (lclfno (cpu 2.33 gc 0.0)))
		 (trloff  (lclfno (cpu 7.67 gc 0.88)))
		 (trlon  (lclfyes (cpu 2.6 gc 0.83)))
		 (trlon  (lclfyes (cpu 2.6 gc 0.83)))))
	   (10r2 ((trlon (lclfno (cpu 8.0 gc 2.27)))
		  (trloff  (lclfno (cpu 14.87 gc 3.83)))
		  (trlon  (lclfyes (cpu 8.87 gc 3.7)))
		  (trlon  (lclfyes (cpu 8.87 gc 3.7)))))
	   (10r3 ((trlon (lclfno (cpu 2.6 gc 0.0)))
		  (trloff  (lclfno (cpu 8.62 gc 1.43)))
		  (trlon  (lclfyes (cpu 3.85 gc 1.83)))
		  (trlon  (lclfyes (cpu 3.85 gc 1.83)))))
	   (15r ((trlon (lclfno (cpu 20.6 gc 4.02)))
		 (trloff  (lclfno (cpu 52.52 gc 5.32)))
		 (trlon  (lclfyes (cpu 18.48 gc 5.63)))
		 (trlon  (lclfyes (cpu 18.48 gc 5.63)))))
	   (15r2 ((trlon (lclfno (cpu 86.5 gc 30.38)))
		  (trloff  (lclfno (cpu 132.8 gc 43.0)))
		  (trlon  (lclfyes (cpu 93.87 gc 41.75)))
		  (trlon  (lclfyes (cpu 93.87 gc 41.75)))))
	   (15r3 ((trlon (lclfno (cpu 25.08 gc 6.77)))
		  (trloff  (lclfno (cpu 54.27 gc 6.95)))
		  (trlon  (lclfyes (cpu 21.7 gc 6.97)))
		  (trlon  (lclfyes (cpu 21.7 gc 6.97)))))))
	 (franz750 
	  ((2r ((trlon (lclfno (cpu 0.05 gc 0.0)))
		(trloff  (lclfno (cpu 0.08 gc 0.0)))
		(trlon  (lclfyes (cpu 0.03 gc 0.0)))
		(trlon  (lclfyes (cpu 0.03 gc 0.0)))))
	   (2r2 ((trlon (lclfno (cpu 0.03 gc 0.0)))
		 (trloff  (lclfno (cpu 0.12 gc 0.0)))
		 (trlon  (lclfyes (cpu 0.03 gc 0.0)))
		 (trlon  (lclfyes (cpu 0.03 gc 0.0)))))
	   (2r3 ((trlon (lclfno (cpu 0.03 gc 0.0)))
		 (trloff  (lclfno (cpu 0.08 gc 0.0)))
		 (trlon  (lclfyes (cpu 0.02 gc 0.0)))
		 (trlon  (lclfyes (cpu 0.02 gc 0.0)))))
	   (5r ((trlon (lclfno (cpu 0.35 gc 0.0)))
		(trloff  (lclfno (cpu 0.93 gc 0.0)))
		(trlon  (lclfyes (cpu 0.27 gc 0.0)))
		(trlon  (lclfyes (cpu 0.27 gc 0.0)))))
	   (5r2 ((trlon (lclfno (cpu 1.18 gc 0.57)))
		 (trloff  (lclfno (cpu 1.8 gc 0.57)))
		 (trlon  (lclfyes (cpu 0.48 gc 0.37)))
		 (trlon  (lclfyes (cpu 0.48 gc 0.37)))))
	   (5r3 ((trlon (lclfno (cpu 1.02 gc 0.67)))
		 (trloff  (lclfno (cpu 1.62 gc 0.63)))
		 (trlon  (lclfyes (cpu .3 gc 1.83)))
		 (trlon  (lclfyes (cpu .3 gc 1.83)))))
	   (10r ((trlon (lclfno (cpu 5.37 gc 1.38)))
		 (trloff  (lclfno (cpu 12.07 gc 1.37)))
		 (trlon  (lclfyes (cpu 3.15 gc 0.0)))
		 (trlon  (lclfyes (cpu 3.15 gc 0.0)))))
	   (10r2 ((trlon (lclfno (cpu 14.95 gc 5.82)))
		  (trloff  (lclfno (cpu 22.27 gc 5.93)))
		  (trlon  (lclfyes (cpu 11.82 gc 3.52)))
		  (trlon  (lclfyes (cpu 11.82 gc 3.52)))))
	   (10r3 ((trlon (lclfno (cpu 7.27 gc 2.95)))
		  (trloff  (lclfno (cpu 13.87 gc 2.88)))
		  (trlon  (lclfyes (cpu 3.47 gc 0.0)))
		  (trlon  (lclfyes (cpu 3.47 gc 0.0)))))
	   (15r ((trlon (lclfno (cpu 37.23 gc 9.12)))
		 (trloff  (lclfno (cpu 82.57 gc 9.38)))
		 (trlon  (lclfyes (cpu 29.47 gc 6.65)))
		 (trlon  (lclfyes (cpu 29.47 gc 6.65)))))
	   (15r2 ((trlon (lclfno (cpu 155.45 gc 67.15)))
		  (trloff  (lclfno (cpu 202.68 gc 67.47)))
		  (trlon  (lclfyes (cpu 129.57 gc 48.22)))
		  (trlon  (lclfyes (cpu 129.57 gc 48.22)))))
	   (15r3 ((trlon (lclfno (cpu 41.47 gc 11.0)))
		  (trloff  (lclfno (cpu 86.83 gc 11.22)))
		  (trlon  (lclfyes (cpu 36.7 gc 11.2)))
		  (trlon  (lclfyes (cpu 36.7 gc 11.2)))))))
	 (NIL750 
	  ((2r (cpu .04 real .0 4))
	   (2r2 (cpu .15 real 0.15))
	   (2r3 (cpu .05 real 0.05))
	   (5r (cpu .36 real 0.36))
	   (5r2 (cpu 2.15 real 2.15))
	   (5r3 (cpu .42 real 0.43))
	   (10r (cpu 3.85 real 3.88))
	   (10r2 (cpu 38.71 real 38.99))
	   (10r3 (cpu 4.64 real 4.66))
	   (15r (cpu 24.93 real 25.81))
	   (15r2 (cpu 479.48 real 482.87))
	   (15r3 (cpu 30.7 real 31.18)))))))
;;; Routines to access the data base
;;; A routine like real-time gets the CADR of the entry
;;; under the implementation and the name of the implementation too.
;;; for destru and SAIL it gets:
;;;            (cpu 2.16 gc 5.38 wholine 8.43) 

(defun safe-plus (x y)
       (cond ((and (numberp x)
		   (numberp y))
	      (//$ (float (fix (times 100.0 (plus x y)))) 100.0))))
	     
;;; Finds things in a structure like:
;;;            (cpu 2.16 gc 5.38 wholine 8.43) 
;;;			 ↑
;;;		         x

(defun flassq (x l)
       (do ((l l (cddr l)))
	   ((or (eq (car l) x)
		(null l))
	    (cadr l))))

;;; Finds things in a structure like:
;;;	           ((trlon (lclfno (cpu 0.52 gc 0.0)))
;;;		    (trloff  (lclfno (cpu 0.52 gc 0.0)))
;;;		    (trlon  (lclfyes (cpu 0.53 gc 0.0)))
;;;		       ↑        ↑
;;;		       x        y
;;;		    (trloff  (lclfyes (cpu 0.48 gc 0.0))))

(defun locate (x y entry)
       (do ((entry entry (cdr entry)))
	   ((or (and (eq (caar entry) x)
		     (eq (car (cadr (car entry))) y))
		(null entry))
	    (cadr (cadr (car entry))))))

(defmacro real-time-compute (impl entry)
	  `(caseq ,impl
		  (sail (flassq 'wholine ,entry))
		  (s3600 (safe-plus (cadr ,entry)
				    (cadddr ,entry)))
		  (lm2 (cadr ,entry))
		  (interlisp-10 (safe-plus (cadr ,entry)
					   (cadddr ,entry)))
		  (psl20 (safe-plus (cadr ,entry)
				    (cadddr ,entry)))
		  ((d2 d3) (safe-plus (cadr ,entry)
				      (cadddr ,entry)))
		  ((franz780 franz750 franz68k)
		   (let ((entry (locate 'trlon 'lclfno ,entry)))
			(safe-plus (cadr entry)
				   (cadddr entry))))
		  (nil750 (cadddr entry))))

(defmacro cpu-time-compute (impl entry)
	  `(caseq ,impl
		  (sail (flassq 'cpu ,entry))
		  (interlisp-10 (flassq 'cpu ,entry))
		  (psl20 (flassq 'cpu ,entry))
		  (s3600 (cadr ,entry))
		  (lm2 (cadr ,entry))
		  ((d2 d3) (cadr ,entry))
		  ((franz780 franz750 franz68k)
		   (let ((entry (locate 'trlon 'lclfno ,entry)))
			(cadr entry)))
		  (nil750 (cadr entry))))

(defun real-time (impl entry)
 (real-time-compute impl entry))

(defun tinit-real-time (impl entry)
 (let ((entry (cadr (assq 'initialize entry))))
      (real-time-compute impl entry)))

(defun traverse-real-time (impl entry)
 (let ((entry (cadr (assq 'traverse entry))))
      (real-time-compute impl entry)))

(defun iterative-real-time (impl entry)
 (let ((entry (cadr (assq 'iterative entry))))
      (real-time-compute impl entry)))

(defun recursive-real-time (impl entry)
 (let ((entry (cadr (assq 'recursive entry))))
      (real-time-compute impl entry)))

(defun 2r-real-time (impl entry)
 (let ((entry (cadr (assq '2r entry))))
      (real-time-compute impl entry)))

(defun 2r2-real-time (impl entry)
 (let ((entry (cadr (assq '2r2 entry))))
      (real-time-compute impl entry)))

(defun 2r3-real-time (impl entry)
 (let ((entry (cadr (assq '2r3 entry))))
      (real-time-compute impl entry)))

(defun 5r-real-time (impl entry)
 (let ((entry (cadr (assq '5r entry))))
      (real-time-compute impl entry)))

(defun 5r2-real-time (impl entry)
 (let ((entry (cadr (assq '5r2 entry))))
      (real-time-compute impl entry)))

(defun 5r3-real-time (impl entry)
 (let ((entry (cadr (assq '5r3 entry))))
      (real-time-compute impl entry)))

(defun 10r-real-time (impl entry)
 (let ((entry (cadr (assq '10r entry))))
      (real-time-compute impl entry)))

(defun 10r2-real-time (impl entry)
 (let ((entry (cadr (assq '10r2 entry))))
       (real-time-compute impl entry)))

(defun 10r3-real-time (impl entry)
 (let ((entry (cadr (assq '10r3 entry))))
       (real-time-compute impl entry)))

(defun 15r-real-time (impl entry)
 (let ((entry (cadr (assq '15r entry))))
       (real-time-compute impl entry)))

(defun 15r2-real-time (impl entry)
 (let ((entry (cadr (assq '15r2 entry))))
       (real-time-compute impl entry)))

(defun 15r3-real-time (impl entry)
 (let ((entry (cadr (assq '15r3 entry))))
       (real-time-compute impl entry)))

(defun cpu-time (impl entry)
 (cpu-time-compute impl entry))

(defun tinit-cpu-time (impl entry)
 (let ((entry (cadr (assq 'initialize entry))))
      (cpu-time-compute impl entry)))

(defun traverse-cpu-time (impl entry)
 (let ((entry (cadr (assq 'traverse entry))))
      (cpu-time-compute impl entry)))

(defun iterative-cpu-time (impl entry)
 (let ((entry (cadr (assq 'iterative entry))))
      (cpu-time-compute impl entry)))

(defun recursive-cpu-time (impl entry)
 (let ((entry (cadr (assq 'recursive entry))))
      (cpu-time-compute impl entry)))

(defun 2r-cpu-time (impl entry)
 (let ((entry (cadr (assq '2r entry))))
      (cpu-time-compute impl entry)))

(defun 2r2-cpu-time (impl entry)
 (let ((entry (cadr (assq '2r2 entry))))
      (cpu-time-compute impl entry)))

(defun 2r3-cpu-time (impl entry)
 (let ((entry (cadr (assq '2r3 entry))))
      (cpu-time-compute impl entry)))

(defun 5r-cpu-time (impl entry)
 (let ((entry (cadr (assq '5r entry))))
      (cpu-time-compute impl entry)))

(defun 5r2-cpu-time (impl entry)
 (let ((entry (cadr (assq '5r2 entry))))
      (cpu-time-compute impl entry)))

(defun 5r3-cpu-time (impl entry)
 (let ((entry (cadr (assq '5r3 entry))))
      (cpu-time-compute impl entry)))

(defun 10r-cpu-time (impl entry)
 (let ((entry (cadr (assq '10r entry))))
      (cpu-time-compute impl entry)))

(defun 10r2-cpu-time (impl entry)
 (let ((entry (cadr (assq '10r2 entry))))
       (cpu-time-compute impl entry)))

(defun 10r3-cpu-time (impl entry)
 (let ((entry (cadr (assq '10r3 entry))))
       (cpu-time-compute impl entry)))

(defun 15r-cpu-time (impl entry)
 (let ((entry (cadr (assq '15r entry))))
       (cpu-time-compute impl entry)))

(defun 15r2-cpu-time (impl entry)
 (let ((entry (cadr (assq '15r2 entry))))
       (cpu-time-compute impl entry)))

(defun 15r3-cpu-time (impl entry)
 (let ((entry (cadr (assq '15r3 entry))))
       (cpu-time-compute impl entry)))

(defun safe-quotient (x y)
       (cond ((and (numberp x)
		   (numberp y))
	      (quotient x y))))